function func056(e, t, o) {
    var n = o(122);
    e.exports = c, e.exports.parse = a, e.exports.compile = function(e, t) {
      return l(a(e, t), t)
    }, e.exports.tokensToFunction = l, e.exports.tokensToRegExp = T;
    var i = new RegExp(["(\\\\.)", "([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"), "g");
  
    function a(e, t) {
      for (var o, n = [], a = 0, r = 0, l = "", O = t && t.delimiter || "/"; null != (o = i.exec(e));) {
        var _ = o[0],
          T = o[1],
          c = o.index;
        if (l += e.slice(r, c), r = c + _.length, T) l += T[1];
        else {
          var u = e[r],
            g = o[2],
            S = o[3],
            N = o[4],
            A = o[5],
            d = o[6],
            R = o[7];
          l && (n.push(l), l = "");
          var h = null != g && null != u && u !== g,
            p = "+" === d || "*" === d,
            I = "?" === d || "*" === d,
            C = o[2] || O,
            L = N || A;
          n.push({
            name: S || a++,
            prefix: g || "",
            delimiter: C,
            optional: I,
            repeat: p,
            partial: h,
            asterisk: !!R,
            pattern: L ? E(L) : R ? ".*" : "[^" + s(C) + "]+?"
          })
        }
      }
      return r < e.length && (l += e.substr(r)), l && n.push(l), n
    }
  
    function r(e) {
      return encodeURI(e)
        .replace(/[\/?#]/g, (function(e) {
          return "%" + e.charCodeAt(0)
            .toString(16)
            .toUpperCase()
        }))
    }
  
    function l(e, t) {
      for (var o = new Array(e.length), i = 0; i < e.length; i++) "object" == typeof e[i] && (o[i] = new RegExp("^(?:" + e[i].pattern + ")$", _(t)));
      return function(t, i) {
        for (var a = "", l = t || {}, s = (i || {})
          .pretty ? r : encodeURIComponent, E = 0; E < e.length; E++) {
          var O = e[E];
          if ("string" != typeof O) {
            var _, T = l[O.name];
            if (null == T) {
              if (O.optional) {
                O.partial && (a += O.prefix);
                continue
              }
              throw new TypeError('Expected "' + O.name + '" to be defined')
            }
            if (n(T)) {
              if (!O.repeat) throw new TypeError('Expected "' + O.name + '" to not repeat, but received `' + JSON.stringify(T) + "`");
              if (0 === T.length) {
                if (O.optional) continue;
                throw new TypeError('Expected "' + O.name + '" to not be empty')
              }
              for (var c = 0; c < T.length; c++) {
                if (_ = s(T[c]), !o[E].test(_)) throw new TypeError('Expected all "' + O.name + '" to match "' + O.pattern + '", but received `' + JSON.stringify(_) + "`");
                a += (0 === c ? O.prefix : O.delimiter) + _
              }
            } else {
              if (_ = O.asterisk ? encodeURI(T)
                .replace(/[?#]/g, (function(e) {
                  return "%" + e.charCodeAt(0)
                    .toString(16)
                    .toUpperCase()
                })) : s(T), !o[E].test(_)) throw new TypeError('Expected "' + O.name + '" to match "' + O.pattern + '", but received "' + _ + '"');
              a += O.prefix + _
            }
          } else a += O
        }
        return a
      }
    }
  
    function s(e) {
      return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g, "\\$1")
    }
  
    function E(e) {
      return e.replace(/([=!:$\/()])/g, "\\$1")
    }
  
    function O(e, t) {
      return e.keys = t, e
    }
  
    function _(e) {
      return e && e.sensitive ? "" : "i"
    }
  
    function T(e, t, o) {
      n(t) || (o = t || o, t = []);
      for (var i = (o = o || {})
        .strict, a = !1 !== o.end, r = "", l = 0; l < e.length; l++) {
        var E = e[l];
        if ("string" == typeof E) r += s(E);
        else {
          var T = s(E.prefix),
            c = "(?:" + E.pattern + ")";
          t.push(E), E.repeat && (c += "(?:" + T + c + ")*"), r += c = E.optional ? E.partial ? T + "(" + c + ")?" : "(?:" + T + "(" + c + "))?" : T + "(" + c + ")"
        }
      }
      var u = s(o.delimiter || "/"),
        g = r.slice(-u.length) === u;
      return i || (r = (g ? r.slice(0, -u.length) : r) + "(?:" + u + "(?=$))?"), r += a ? "$" : i && g ? "" : "(?=" + u + "|$)", O(new RegExp("^" + r, _(o)), t)
    }
  
    function c(e, t, o) {
      return n(t) || (o = t || o, t = []), o = o || {}, e instanceof RegExp ? function(e, t) {
        var o = e.source.match(/\((?!\?)/g);
        if (o)
          for (var n = 0; n < o.length; n++) t.push({
            name: n,
            prefix: null,
            delimiter: null,
            optional: !1,
            repeat: !1,
            partial: !1,
            asterisk: !1,
            pattern: null
          });
        return O(e, t)
      }(e, t) : n(e) ? function(e, t, o) {
        for (var n = [], i = 0; i < e.length; i++) n.push(c(e[i], t, o)
          .source);
        return O(new RegExp("(?:" + n.join("|") + ")", _(o)), t)
      }(e, t, o) : function(e, t, o) {
        return T(a(e, o), t, o)
      }(e, t, o)
    }
  }